{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pairs Selection using Cointegration Tests & Kalman Filter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports & Settings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.349889Z",
     "start_time": "2020-06-19T02:42:47.347632Z"
    }
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.908593Z",
     "start_time": "2020-06-19T02:42:47.351191Z"
    }
   },
   "outputs": [],
   "source": [
    "from collections import Counter\n",
    "\n",
    "from time import time\n",
    "from pathlib import Path\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from pykalman import KalmanFilter\n",
    "from statsmodels.tsa.stattools import coint\n",
    "from statsmodels.tsa.vector_ar.vecm import coint_johansen\n",
    "from statsmodels.tsa.api import VAR\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.912091Z",
     "start_time": "2020-06-19T02:42:47.909755Z"
    }
   },
   "outputs": [],
   "source": [
    "idx = pd.IndexSlice\n",
    "sns.set_style('whitegrid')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.933578Z",
     "start_time": "2020-06-19T02:42:47.927007Z"
    }
   },
   "outputs": [],
   "source": [
    "def format_time(t):\n",
    "    m_, s = divmod(t, 60)\n",
    "    h, m = divmod(m_, 60)\n",
    "    return f'{h:>02.0f}:{m:>02.0f}:{s:>02.0f}'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Johansen Test Critical Values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.943279Z",
     "start_time": "2020-06-19T02:42:47.934611Z"
    }
   },
   "outputs": [],
   "source": [
    "critical_values = {0: {.9: 13.4294, .95: 15.4943, .99: 19.9349},\n",
    "                   1: {.9: 2.7055, .95: 3.8415, .99: 6.6349}}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:47.951303Z",
     "start_time": "2020-06-19T02:42:47.944195Z"
    }
   },
   "outputs": [],
   "source": [
    "trace0_cv = critical_values[0][.95] # critical value for 0 cointegration relationships\n",
    "trace1_cv = critical_values[1][.95] # critical value for 1 cointegration relationship"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:03:36.116641Z",
     "start_time": "2020-06-19T13:03:36.109897Z"
    }
   },
   "outputs": [],
   "source": [
    "DATA_PATH = Path('..', 'data') \n",
    "STORE = DATA_PATH / 'assets.h5'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get backtest prices"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Combine OHLCV prices for relevant stock and ETF tickers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:09:37.773341Z",
     "start_time": "2020-06-19T13:09:37.761245Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_backtest_prices():\n",
    "    with pd.HDFStore('data.h5') as store:\n",
    "        tickers = store['tickers']\n",
    "\n",
    "    with pd.HDFStore(STORE) as store:\n",
    "        prices = (pd.concat([\n",
    "            store['stooq/us/nyse/stocks/prices'],\n",
    "            store['stooq/us/nyse/etfs/prices'],\n",
    "            store['stooq/us/nasdaq/etfs/prices'],\n",
    "            store['stooq/us/nasdaq/stocks/prices']])\n",
    "                  .sort_index()\n",
    "                  .loc[idx[tickers.index, '2016':'2019'], :])\n",
    "    print(prices.info(null_counts=True))\n",
    "    prices.to_hdf('backtest.h5', 'prices')\n",
    "    tickers.to_hdf('backtest.h5', 'tickers')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:10:04.571934Z",
     "start_time": "2020-06-19T13:09:38.060713Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "MultiIndex: 312863 entries, ('AA.US', Timestamp('2016-01-04 00:00:00')) to ('YUM.US', Timestamp('2019-12-31 00:00:00'))\n",
      "Data columns (total 5 columns):\n",
      " #   Column  Non-Null Count   Dtype  \n",
      "---  ------  --------------   -----  \n",
      " 0   open    312863 non-null  float64\n",
      " 1   high    312863 non-null  float64\n",
      " 2   low     312863 non-null  float64\n",
      " 3   close   312863 non-null  float64\n",
      " 4   volume  312863 non-null  int64  \n",
      "dtypes: float64(4), int64(1)\n",
      "memory usage: 13.2+ MB\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "get_backtest_prices()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Stock Prices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.043300Z",
     "start_time": "2020-06-19T02:42:47.984127Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 1258 entries, 2015-01-02 to 2019-12-31\n",
      "Columns: 172 entries, AA.US to YUM.US\n",
      "dtypes: float64(172)\n",
      "memory usage: 1.7 MB\n"
     ]
    }
   ],
   "source": [
    "stocks = pd.read_hdf('data.h5', 'stocks/close').loc['2015':]\n",
    "stocks.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load ETF Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.064535Z",
     "start_time": "2020-06-19T02:42:48.044660Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 1258 entries, 2015-01-02 to 2019-12-31\n",
      "Columns: 139 entries, AAXJ.US to YCS.US\n",
      "dtypes: float64(139)\n",
      "memory usage: 1.3 MB\n"
     ]
    }
   ],
   "source": [
    "etfs = pd.read_hdf('data.h5', 'etfs/close').loc['2015':]\n",
    "etfs.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Ticker Dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.072961Z",
     "start_time": "2020-06-19T02:42:48.066585Z"
    }
   },
   "outputs": [],
   "source": [
    "names = pd.read_hdf('data.h5', 'tickers').to_dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.083843Z",
     "start_time": "2020-06-19T02:42:48.074540Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "311"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.Series(names).count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Precompute Cointegration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.095421Z",
     "start_time": "2020-06-19T02:42:48.085219Z"
    }
   },
   "outputs": [],
   "source": [
    "def test_cointegration(etfs, stocks, test_end, lookback=2):\n",
    "    start = time()\n",
    "    results = []\n",
    "    test_start = test_end - pd.DateOffset(years=lookback) + pd.DateOffset(days=1)\n",
    "    etf_tickers = etfs.columns.tolist()\n",
    "    etf_data = etfs.loc[str(test_start):str(test_end)]\n",
    "\n",
    "    stock_tickers = stocks.columns.tolist()\n",
    "    stock_data = stocks.loc[str(test_start):str(test_end)]\n",
    "    n = len(etf_tickers) * len(stock_tickers)\n",
    "    j = 0\n",
    "    for i, s1 in enumerate(etf_tickers, 1):\n",
    "        for s2 in stock_tickers:\n",
    "            j += 1\n",
    "            if j % 1000 == 0:\n",
    "                print(f'\\t{j:5,.0f} ({j/n:3.1%}) | {time() - start:.2f}')\n",
    "            df = etf_data.loc[:, [s1]].dropna().join(stock_data.loc[:, [s2]].dropna(), how='inner')\n",
    "            with warnings.catch_warnings():\n",
    "                warnings.simplefilter('ignore')\n",
    "                var = VAR(df)\n",
    "                lags = var.select_order()\n",
    "                result = [test_end, s1, s2]\n",
    "                order = lags.selected_orders['aic']\n",
    "                result += [coint(df[s1], df[s2], trend='c')[1], coint(df[s2], df[s1], trend='c')[1]]\n",
    "\n",
    "            cj = coint_johansen(df, det_order=0, k_ar_diff=order)\n",
    "            result += (list(cj.lr1) + list(cj.lr2) + list(cj.evec[:, cj.ind[0]]))\n",
    "            results.append(result)\n",
    "    return results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define Test Periods"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T02:42:48.110785Z",
     "start_time": "2020-06-19T02:42:48.096915Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2016-12-31', '2017-03-31', '2017-06-30', '2017-09-30',\n",
       "               '2017-12-31', '2018-03-31', '2018-06-30', '2018-09-30',\n",
       "               '2018-12-31', '2019-03-31', '2019-06-30'],\n",
       "              dtype='datetime64[ns]', name='date', freq='Q-DEC')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dates = stocks.loc['2016-12':'2019-6'].resample('Q').last().index\n",
    "dates"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run Tests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.759471Z",
     "start_time": "2020-06-19T02:42:48.111942Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2016-12-31 00:00:00\n",
      "\t1,000 (4.2%) | 54.32\n",
      "\t2,000 (8.4%) | 105.25\n",
      "\t3,000 (12.5%) | 156.85\n",
      "\t4,000 (16.7%) | 208.33\n",
      "\t5,000 (20.9%) | 259.67\n",
      "\t6,000 (25.1%) | 310.20\n",
      "\t7,000 (29.3%) | 361.73\n",
      "\t8,000 (33.5%) | 415.96\n",
      "\t9,000 (37.6%) | 467.39\n",
      "\t10,000 (41.8%) | 519.14\n",
      "\t11,000 (46.0%) | 571.14\n",
      "\t12,000 (50.2%) | 623.57\n",
      "\t13,000 (54.4%) | 679.03\n",
      "\t14,000 (58.6%) | 731.01\n",
      "\t15,000 (62.7%) | 786.51\n",
      "\t16,000 (66.9%) | 838.69\n",
      "\t17,000 (71.1%) | 891.46\n",
      "\t18,000 (75.3%) | 947.83\n",
      "\t19,000 (79.5%) | 999.86\n",
      "\t20,000 (83.7%) | 1051.32\n",
      "\t21,000 (87.8%) | 1102.79\n",
      "\t22,000 (92.0%) | 1155.83\n",
      "\t23,000 (96.2%) | 1210.67\n",
      "2017-03-31 00:00:00\n",
      "\t1,000 (4.2%) | 51.45\n",
      "\t2,000 (8.4%) | 103.60\n",
      "\t3,000 (12.5%) | 154.91\n",
      "\t4,000 (16.7%) | 207.16\n",
      "\t5,000 (20.9%) | 259.57\n",
      "\t6,000 (25.1%) | 313.52\n",
      "\t7,000 (29.3%) | 367.18\n",
      "\t8,000 (33.5%) | 419.41\n",
      "\t9,000 (37.6%) | 472.77\n",
      "\t10,000 (41.8%) | 524.24\n",
      "\t11,000 (46.0%) | 576.73\n",
      "\t12,000 (50.2%) | 628.75\n",
      "\t13,000 (54.4%) | 680.14\n",
      "\t14,000 (58.6%) | 732.15\n",
      "\t15,000 (62.7%) | 788.75\n",
      "\t16,000 (66.9%) | 839.75\n",
      "\t17,000 (71.1%) | 891.21\n",
      "\t18,000 (75.3%) | 943.21\n",
      "\t19,000 (79.5%) | 994.23\n",
      "\t20,000 (83.7%) | 1045.09\n",
      "\t21,000 (87.8%) | 1099.81\n",
      "\t22,000 (92.0%) | 1152.24\n",
      "\t23,000 (96.2%) | 1204.35\n",
      "2017-06-30 00:00:00\n",
      "\t1,000 (4.2%) | 60.72\n",
      "\t2,000 (8.4%) | 112.32\n",
      "\t3,000 (12.5%) | 163.92\n",
      "\t4,000 (16.7%) | 216.93\n",
      "\t5,000 (20.9%) | 268.05\n",
      "\t6,000 (25.1%) | 319.51\n",
      "\t7,000 (29.3%) | 371.52\n",
      "\t8,000 (33.5%) | 421.85\n",
      "\t9,000 (37.6%) | 477.16\n",
      "\t10,000 (41.8%) | 527.80\n",
      "\t11,000 (46.0%) | 578.79\n",
      "\t12,000 (50.2%) | 634.85\n",
      "\t13,000 (54.4%) | 685.60\n",
      "\t14,000 (58.6%) | 742.40\n",
      "\t15,000 (62.7%) | 797.58\n",
      "\t16,000 (66.9%) | 852.54\n",
      "\t17,000 (71.1%) | 904.22\n",
      "\t18,000 (75.3%) | 954.77\n",
      "\t19,000 (79.5%) | 1006.83\n",
      "\t20,000 (83.7%) | 1057.93\n",
      "\t21,000 (87.8%) | 1114.17\n",
      "\t22,000 (92.0%) | 1165.59\n",
      "\t23,000 (96.2%) | 1217.66\n",
      "2017-09-30 00:00:00\n",
      "\t1,000 (4.2%) | 52.47\n",
      "\t2,000 (8.4%) | 104.40\n",
      "\t3,000 (12.5%) | 157.41\n",
      "\t4,000 (16.7%) | 208.44\n",
      "\t5,000 (20.9%) | 260.18\n",
      "\t6,000 (25.1%) | 313.08\n",
      "\t7,000 (29.3%) | 366.05\n",
      "\t8,000 (33.5%) | 418.07\n",
      "\t9,000 (37.6%) | 470.27\n",
      "\t10,000 (41.8%) | 522.26\n",
      "\t11,000 (46.0%) | 574.02\n",
      "\t12,000 (50.2%) | 625.88\n",
      "\t13,000 (54.4%) | 677.30\n",
      "\t14,000 (58.6%) | 729.59\n",
      "\t15,000 (62.7%) | 780.49\n",
      "\t16,000 (66.9%) | 836.47\n",
      "\t17,000 (71.1%) | 888.55\n",
      "\t18,000 (75.3%) | 940.25\n",
      "\t19,000 (79.5%) | 992.75\n",
      "\t20,000 (83.7%) | 1044.53\n",
      "\t21,000 (87.8%) | 1096.46\n",
      "\t22,000 (92.0%) | 1147.74\n",
      "\t23,000 (96.2%) | 1199.66\n",
      "2017-12-31 00:00:00\n",
      "\t1,000 (4.2%) | 52.34\n",
      "\t2,000 (8.4%) | 103.74\n",
      "\t3,000 (12.5%) | 155.49\n",
      "\t4,000 (16.7%) | 205.97\n",
      "\t5,000 (20.9%) | 247.07\n",
      "\t6,000 (25.1%) | 287.80\n",
      "\t7,000 (29.3%) | 328.58\n",
      "\t8,000 (33.5%) | 369.47\n",
      "\t9,000 (37.6%) | 410.48\n",
      "\t10,000 (41.8%) | 451.58\n",
      "\t11,000 (46.0%) | 492.52\n",
      "\t12,000 (50.2%) | 533.40\n",
      "\t13,000 (54.4%) | 574.31\n",
      "\t14,000 (58.6%) | 615.45\n",
      "\t15,000 (62.7%) | 656.33\n",
      "\t16,000 (66.9%) | 697.11\n",
      "\t17,000 (71.1%) | 737.81\n",
      "\t18,000 (75.3%) | 778.57\n",
      "\t19,000 (79.5%) | 819.32\n",
      "\t20,000 (83.7%) | 860.00\n",
      "\t21,000 (87.8%) | 901.04\n",
      "\t22,000 (92.0%) | 941.77\n",
      "\t23,000 (96.2%) | 982.65\n",
      "2018-03-31 00:00:00\n",
      "\t1,000 (4.2%) | 40.97\n",
      "\t2,000 (8.4%) | 81.99\n",
      "\t3,000 (12.5%) | 123.05\n",
      "\t4,000 (16.7%) | 164.06\n",
      "\t5,000 (20.9%) | 205.03\n",
      "\t6,000 (25.1%) | 246.91\n",
      "\t7,000 (29.3%) | 288.14\n",
      "\t8,000 (33.5%) | 329.00\n",
      "\t9,000 (37.6%) | 369.95\n",
      "\t10,000 (41.8%) | 411.02\n",
      "\t11,000 (46.0%) | 451.95\n",
      "\t12,000 (50.2%) | 493.00\n",
      "\t13,000 (54.4%) | 533.98\n",
      "\t14,000 (58.6%) | 574.80\n",
      "\t15,000 (62.7%) | 615.67\n",
      "\t16,000 (66.9%) | 656.63\n",
      "\t17,000 (71.1%) | 697.80\n",
      "\t18,000 (75.3%) | 738.80\n",
      "\t19,000 (79.5%) | 779.77\n",
      "\t20,000 (83.7%) | 820.54\n",
      "\t21,000 (87.8%) | 861.56\n",
      "\t22,000 (92.0%) | 902.40\n",
      "\t23,000 (96.2%) | 943.44\n",
      "2018-06-30 00:00:00\n",
      "\t1,000 (4.2%) | 40.92\n",
      "\t2,000 (8.4%) | 81.85\n",
      "\t3,000 (12.5%) | 122.98\n",
      "\t4,000 (16.7%) | 164.03\n",
      "\t5,000 (20.9%) | 205.11\n",
      "\t6,000 (25.1%) | 246.25\n",
      "\t7,000 (29.3%) | 287.36\n",
      "\t8,000 (33.5%) | 328.38\n",
      "\t9,000 (37.6%) | 369.17\n",
      "\t10,000 (41.8%) | 409.99\n",
      "\t11,000 (46.0%) | 450.90\n",
      "\t12,000 (50.2%) | 491.70\n",
      "\t13,000 (54.4%) | 532.74\n",
      "\t14,000 (58.6%) | 573.86\n",
      "\t15,000 (62.7%) | 614.66\n",
      "\t16,000 (66.9%) | 655.39\n",
      "\t17,000 (71.1%) | 696.38\n",
      "\t18,000 (75.3%) | 737.29\n",
      "\t19,000 (79.5%) | 778.26\n",
      "\t20,000 (83.7%) | 819.22\n",
      "\t21,000 (87.8%) | 860.34\n",
      "\t22,000 (92.0%) | 901.37\n",
      "\t23,000 (96.2%) | 942.38\n",
      "2018-09-30 00:00:00\n",
      "\t1,000 (4.2%) | 41.14\n",
      "\t2,000 (8.4%) | 82.08\n",
      "\t3,000 (12.5%) | 123.01\n",
      "\t4,000 (16.7%) | 163.90\n",
      "\t5,000 (20.9%) | 204.80\n",
      "\t6,000 (25.1%) | 245.65\n",
      "\t7,000 (29.3%) | 286.63\n",
      "\t8,000 (33.5%) | 327.57\n",
      "\t9,000 (37.6%) | 368.46\n",
      "\t10,000 (41.8%) | 409.37\n",
      "\t11,000 (46.0%) | 450.29\n",
      "\t12,000 (50.2%) | 491.42\n",
      "\t13,000 (54.4%) | 532.83\n",
      "\t14,000 (58.6%) | 574.23\n",
      "\t15,000 (62.7%) | 615.76\n",
      "\t16,000 (66.9%) | 657.23\n",
      "\t17,000 (71.1%) | 698.85\n",
      "\t18,000 (75.3%) | 740.13\n",
      "\t19,000 (79.5%) | 781.41\n",
      "\t20,000 (83.7%) | 822.40\n",
      "\t21,000 (87.8%) | 863.44\n",
      "\t22,000 (92.0%) | 904.50\n",
      "\t23,000 (96.2%) | 945.50\n",
      "2018-12-31 00:00:00\n",
      "\t1,000 (4.2%) | 40.96\n",
      "\t2,000 (8.4%) | 81.97\n",
      "\t3,000 (12.5%) | 123.01\n",
      "\t4,000 (16.7%) | 164.11\n",
      "\t5,000 (20.9%) | 204.93\n",
      "\t6,000 (25.1%) | 245.70\n",
      "\t7,000 (29.3%) | 286.53\n",
      "\t8,000 (33.5%) | 327.35\n",
      "\t9,000 (37.6%) | 368.21\n",
      "\t10,000 (41.8%) | 409.12\n",
      "\t11,000 (46.0%) | 450.09\n",
      "\t12,000 (50.2%) | 490.97\n",
      "\t13,000 (54.4%) | 532.01\n",
      "\t14,000 (58.6%) | 573.02\n",
      "\t15,000 (62.7%) | 614.00\n",
      "\t16,000 (66.9%) | 655.01\n",
      "\t17,000 (71.1%) | 695.99\n",
      "\t18,000 (75.3%) | 736.99\n",
      "\t19,000 (79.5%) | 777.94\n",
      "\t20,000 (83.7%) | 818.69\n",
      "\t21,000 (87.8%) | 859.55\n",
      "\t22,000 (92.0%) | 900.84\n",
      "\t23,000 (96.2%) | 941.59\n",
      "2019-03-31 00:00:00\n",
      "\t1,000 (4.2%) | 40.96\n",
      "\t2,000 (8.4%) | 82.02\n",
      "\t3,000 (12.5%) | 122.92\n",
      "\t4,000 (16.7%) | 163.86\n",
      "\t5,000 (20.9%) | 204.86\n",
      "\t6,000 (25.1%) | 245.87\n",
      "\t7,000 (29.3%) | 286.86\n",
      "\t8,000 (33.5%) | 327.88\n",
      "\t9,000 (37.6%) | 368.71\n",
      "\t10,000 (41.8%) | 409.61\n",
      "\t11,000 (46.0%) | 450.55\n",
      "\t12,000 (50.2%) | 491.47\n",
      "\t13,000 (54.4%) | 532.39\n",
      "\t14,000 (58.6%) | 573.34\n",
      "\t15,000 (62.7%) | 614.34\n",
      "\t16,000 (66.9%) | 655.35\n",
      "\t17,000 (71.1%) | 696.43\n",
      "\t18,000 (75.3%) | 737.54\n",
      "\t19,000 (79.5%) | 778.59\n",
      "\t20,000 (83.7%) | 819.64\n",
      "\t21,000 (87.8%) | 860.45\n",
      "\t22,000 (92.0%) | 901.25\n",
      "\t23,000 (96.2%) | 942.15\n",
      "2019-06-30 00:00:00\n",
      "\t1,000 (4.2%) | 40.89\n",
      "\t2,000 (8.4%) | 81.79\n",
      "\t3,000 (12.5%) | 122.80\n",
      "\t4,000 (16.7%) | 163.57\n",
      "\t5,000 (20.9%) | 204.28\n",
      "\t6,000 (25.1%) | 245.06\n",
      "\t7,000 (29.3%) | 285.77\n",
      "\t8,000 (33.5%) | 326.56\n",
      "\t9,000 (37.6%) | 367.20\n",
      "\t10,000 (41.8%) | 407.91\n",
      "\t11,000 (46.0%) | 448.76\n",
      "\t12,000 (50.2%) | 489.38\n",
      "\t13,000 (54.4%) | 530.03\n",
      "\t14,000 (58.6%) | 570.77\n",
      "\t15,000 (62.7%) | 611.43\n",
      "\t16,000 (66.9%) | 652.08\n",
      "\t17,000 (71.1%) | 692.72\n",
      "\t18,000 (75.3%) | 733.67\n",
      "\t19,000 (79.5%) | 774.62\n",
      "\t20,000 (83.7%) | 815.65\n",
      "\t21,000 (87.8%) | 856.57\n",
      "\t22,000 (92.0%) | 897.49\n",
      "\t23,000 (96.2%) | 938.58\n"
     ]
    }
   ],
   "source": [
    "test_results = []\n",
    "columns = ['test_end', 's1', 's2', 'eg1', 'eg2',\n",
    "           'trace0', 'trace1', 'eig0', 'eig1', 'w1', 'w2']\n",
    "\n",
    "for test_end in dates:\n",
    "    print(test_end)\n",
    "    result = test_cointegration(etfs, stocks, test_end=test_end)\n",
    "    test_results.append(pd.DataFrame(result, columns=columns))\n",
    "\n",
    "pd.concat(test_results).to_hdf('backtest.h5', 'cointegration_test')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Reload  Test Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.819729Z",
     "start_time": "2020-06-19T06:01:29.760347Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 262988 entries, 0 to 23907\n",
      "Data columns (total 11 columns):\n",
      " #   Column    Non-Null Count   Dtype         \n",
      "---  ------    --------------   -----         \n",
      " 0   test_end  262988 non-null  datetime64[ns]\n",
      " 1   s1        262988 non-null  object        \n",
      " 2   s2        262988 non-null  object        \n",
      " 3   eg1       262988 non-null  float64       \n",
      " 4   eg2       262988 non-null  float64       \n",
      " 5   trace0    262988 non-null  float64       \n",
      " 6   trace1    262988 non-null  float64       \n",
      " 7   eig0      262988 non-null  float64       \n",
      " 8   eig1      262988 non-null  float64       \n",
      " 9   w1        262988 non-null  float64       \n",
      " 10  w2        262988 non-null  float64       \n",
      "dtypes: datetime64[ns](1), float64(8), object(2)\n",
      "memory usage: 24.1+ MB\n"
     ]
    }
   ],
   "source": [
    "test_results = pd.read_hdf('backtest.h5', 'cointegration_test')\n",
    "test_results.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Identify Cointegrated Pairs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Significant Johansen Trace Statistic"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.824433Z",
     "start_time": "2020-06-19T06:01:29.820808Z"
    }
   },
   "outputs": [],
   "source": [
    "test_results['joh_sig'] = ((test_results.trace0 > trace0_cv) &\n",
    "                           (test_results.trace1 > trace1_cv))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.834934Z",
     "start_time": "2020-06-19T06:01:29.825442Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    0.947211\n",
       "True     0.052789\n",
       "Name: joh_sig, dtype: float64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_results.joh_sig.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Significant Engle Granger Test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.846685Z",
     "start_time": "2020-06-19T06:01:29.835871Z"
    }
   },
   "outputs": [],
   "source": [
    "test_results['eg'] = test_results[['eg1', 'eg2']].min(axis=1)\n",
    "test_results['s1_dep'] = test_results.eg1 < test_results.eg2\n",
    "test_results['eg_sig'] = (test_results.eg < .05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.853515Z",
     "start_time": "2020-06-19T06:01:29.847666Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    0.91157\n",
       "True     0.08843\n",
       "Name: eg_sig, dtype: float64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_results.eg_sig.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Comparison Engle-Granger vs Johansen"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.860981Z",
     "start_time": "2020-06-19T06:01:29.854361Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    0.986775\n",
       "True     0.013225\n",
       "Name: coint, dtype: float64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_results['coint'] = (test_results.eg_sig & test_results.joh_sig)\n",
    "test_results.coint.value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:29.899199Z",
     "start_time": "2020-06-19T06:01:29.861982Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 262988 entries, 0 to 23907\n",
      "Data columns (total 10 columns):\n",
      " #   Column    Non-Null Count   Dtype         \n",
      "---  ------    --------------   -----         \n",
      " 0   test_end  262988 non-null  datetime64[ns]\n",
      " 1   s1        262988 non-null  object        \n",
      " 2   s2        262988 non-null  object        \n",
      " 3   w1        262988 non-null  float64       \n",
      " 4   w2        262988 non-null  float64       \n",
      " 5   joh_sig   262988 non-null  bool          \n",
      " 6   eg        262988 non-null  float64       \n",
      " 7   s1_dep    262988 non-null  bool          \n",
      " 8   eg_sig    262988 non-null  bool          \n",
      " 9   coint     262988 non-null  bool          \n",
      "dtypes: bool(4), datetime64[ns](1), float64(3), object(2)\n",
      "memory usage: 15.0+ MB\n"
     ]
    }
   ],
   "source": [
    "test_results = test_results.drop(['eg1', 'eg2', 'trace0', 'trace1', 'eig0', 'eig1'], axis=1)\n",
    "test_results.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Comparison"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:30.054274Z",
     "start_time": "2020-06-19T06:01:29.900025Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = test_results.groupby('test_end').coint.mean().to_frame('# Pairs').plot()\n",
    "ax.axhline(.05, lw=1, ls='--', c='k');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Select Candidate Pairs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:30.058145Z",
     "start_time": "2020-06-19T06:01:30.055126Z"
    }
   },
   "outputs": [],
   "source": [
    "def select_candidate_pairs(data):\n",
    "    candidates = data[data.joh_sig | data.eg_sig]\n",
    "    candidates['y'] = candidates.apply(lambda x: x.s1 if x.s1_dep else x.s2, axis=1)\n",
    "    candidates['x'] = candidates.apply(lambda x: x.s2 if x.s1_dep else x.s1, axis=1)\n",
    "    return candidates.drop(['s1_dep', 's1', 's2'], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.623786Z",
     "start_time": "2020-06-19T06:01:30.059031Z"
    }
   },
   "outputs": [],
   "source": [
    "candidates = select_candidate_pairs(test_results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.640534Z",
     "start_time": "2020-06-19T06:01:31.624849Z"
    }
   },
   "outputs": [],
   "source": [
    "candidates.to_hdf('backtest.h5', 'candidates')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.664395Z",
     "start_time": "2020-06-19T06:01:31.641471Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 33661 entries, 7 to 23906\n",
      "Data columns (total 9 columns):\n",
      " #   Column    Non-Null Count  Dtype         \n",
      "---  ------    --------------  -----         \n",
      " 0   test_end  33661 non-null  datetime64[ns]\n",
      " 1   w1        33661 non-null  float64       \n",
      " 2   w2        33661 non-null  float64       \n",
      " 3   joh_sig   33661 non-null  bool          \n",
      " 4   eg        33661 non-null  float64       \n",
      " 5   eg_sig    33661 non-null  bool          \n",
      " 6   coint     33661 non-null  bool          \n",
      " 7   y         33661 non-null  object        \n",
      " 8   x         33661 non-null  object        \n",
      "dtypes: bool(3), datetime64[ns](1), float64(3), object(2)\n",
      "memory usage: 1.9+ MB\n"
     ]
    }
   ],
   "source": [
    "candidates = pd.read_hdf('backtest.h5', 'candidates')\n",
    "candidates.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### # Candidates over Time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.795571Z",
     "start_time": "2020-06-19T06:01:31.665218Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "candidates.groupby('test_end').size().plot(figsize=(8, 5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Most Common Pairs "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.804899Z",
     "start_time": "2020-06-19T06:01:31.796947Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.io.pytables.HDFStore'>\n",
      "File path: data.h5\n",
      "/etfs/close              frame        (shape->[2516,139])\n",
      "/stocks/close            frame        (shape->[2516,172])\n",
      "/tickers                 series       (shape->[1])       \n"
     ]
    }
   ],
   "source": [
    "with pd.HDFStore('data.h5') as store:\n",
    "    print(store.info())\n",
    "    tickers = store['tickers']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.824963Z",
     "start_time": "2020-06-19T06:01:31.805700Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.io.pytables.HDFStore'>\n",
      "File path: backtest.h5\n",
      "/candidates                    frame        (shape->[33661,9])  \n",
      "/cointegration_test            frame        (shape->[262988,11])\n"
     ]
    }
   ],
   "source": [
    "with pd.HDFStore('backtest.h5') as store:\n",
    "    print(store.info())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.861630Z",
     "start_time": "2020-06-19T06:01:31.825814Z"
    }
   },
   "outputs": [],
   "source": [
    "counter = Counter()\n",
    "for s1, s2 in zip(candidates[candidates.joh_sig & candidates.eg_sig].y, \n",
    "                  candidates[candidates.joh_sig & candidates.eg_sig].x):\n",
    "    if s1 > s2:\n",
    "        counter[(s2, s1)] += 1\n",
    "    else: \n",
    "        counter[(s1, s2)] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T06:01:31.876602Z",
     "start_time": "2020-06-19T06:01:31.864124Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>s1</th>\n",
       "      <th>s2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>T.US</td>\n",
       "      <td>VOX.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>NOV.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>RIG.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>AMJ.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>DIG.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>DJP.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>ERX.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>FXN.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>IYE.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       s1       s2\n",
       "0    T.US   VOX.US\n",
       "1  FXF.US  MDLZ.US\n",
       "2  FXF.US   NOV.US\n",
       "3  FXF.US   RIG.US\n",
       "4  AMJ.US  MDLZ.US\n",
       "5  DIG.US  MDLZ.US\n",
       "6  DJP.US  MDLZ.US\n",
       "7  ERX.US  MDLZ.US\n",
       "8  FXN.US  MDLZ.US\n",
       "9  IYE.US  MDLZ.US"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "most_common_pairs = pd.DataFrame(counter.most_common(10))\n",
    "most_common_pairs = pd.DataFrame(most_common_pairs[0].values.tolist(), columns=['s1', 's2'])\n",
    "most_common_pairs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:10:24.702579Z",
     "start_time": "2020-06-19T13:10:24.618722Z"
    }
   },
   "outputs": [],
   "source": [
    "with pd.HDFStore('backtest.h5') as store:\n",
    "    prices = store['prices'].close.unstack('ticker').ffill(limit=5)\n",
    "    tickers = store['tickers'].to_dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:10:24.901984Z",
     "start_time": "2020-06-19T13:10:24.785861Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>s1</th>\n",
       "      <th>s2</th>\n",
       "      <th>n</th>\n",
       "      <th>name1</th>\n",
       "      <th>name2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1352</th>\n",
       "      <td>T.US</td>\n",
       "      <td>VOX.US</td>\n",
       "      <td>6</td>\n",
       "      <td>AT&amp;T</td>\n",
       "      <td>VANGUARD COMMUNICATION SERVICES ETF</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>384</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>INVESCO CURRENCYSHARES SWISS FRANC TRUST</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>388</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>NOV.US</td>\n",
       "      <td>5</td>\n",
       "      <td>INVESCO CURRENCYSHARES SWISS FRANC TRUST</td>\n",
       "      <td>NATIONAL OILWELL VARCO</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>391</th>\n",
       "      <td>FXF.US</td>\n",
       "      <td>RIG.US</td>\n",
       "      <td>5</td>\n",
       "      <td>INVESCO CURRENCYSHARES SWISS FRANC TRUST</td>\n",
       "      <td>TRANSOCEAN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>532</th>\n",
       "      <td>AMJ.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>JPMORGAN ALERIAN MLP INDEX ETN</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>547</th>\n",
       "      <td>DIG.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>PROSHARES ULTRA OIL &amp; GAS</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549</th>\n",
       "      <td>DJP.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>IPATH BLOOMBERG COMMODITY INDEX TR ETN</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>571</th>\n",
       "      <td>ERX.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>DIREXION DAILY ENERGY BULL 2X SHARES</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>630</th>\n",
       "      <td>FXN.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>FIRST TRUST ENERGY ALPHADEX FUND</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>644</th>\n",
       "      <td>IYE.US</td>\n",
       "      <td>MDLZ.US</td>\n",
       "      <td>5</td>\n",
       "      <td>ISHARES US ENERGY ETF</td>\n",
       "      <td>MONDELEZ INT</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          s1       s2  n                                     name1  \\\n",
       "1352    T.US   VOX.US  6                                      AT&T   \n",
       "384   FXF.US  MDLZ.US  5  INVESCO CURRENCYSHARES SWISS FRANC TRUST   \n",
       "388   FXF.US   NOV.US  5  INVESCO CURRENCYSHARES SWISS FRANC TRUST   \n",
       "391   FXF.US   RIG.US  5  INVESCO CURRENCYSHARES SWISS FRANC TRUST   \n",
       "532   AMJ.US  MDLZ.US  5            JPMORGAN ALERIAN MLP INDEX ETN   \n",
       "547   DIG.US  MDLZ.US  5                 PROSHARES ULTRA OIL & GAS   \n",
       "549   DJP.US  MDLZ.US  5    IPATH BLOOMBERG COMMODITY INDEX TR ETN   \n",
       "571   ERX.US  MDLZ.US  5      DIREXION DAILY ENERGY BULL 2X SHARES   \n",
       "630   FXN.US  MDLZ.US  5          FIRST TRUST ENERGY ALPHADEX FUND   \n",
       "644   IYE.US  MDLZ.US  5                     ISHARES US ENERGY ETF   \n",
       "\n",
       "                                    name2  \n",
       "1352  VANGUARD COMMUNICATION SERVICES ETF  \n",
       "384                          MONDELEZ INT  \n",
       "388                NATIONAL OILWELL VARCO  \n",
       "391                            TRANSOCEAN  \n",
       "532                          MONDELEZ INT  \n",
       "547                          MONDELEZ INT  \n",
       "549                          MONDELEZ INT  \n",
       "571                          MONDELEZ INT  \n",
       "630                          MONDELEZ INT  \n",
       "644                          MONDELEZ INT  "
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnt = pd.Series(counter).reset_index()\n",
    "cnt.columns = ['s1', 's2', 'n']\n",
    "cnt['name1'] = cnt.s1.map(tickers)\n",
    "cnt['name2'] = cnt.s2.map(tickers)\n",
    "cnt.nlargest(10, columns='n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:10:53.610381Z",
     "start_time": "2020-06-19T13:10:52.681128Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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sqWXeJVG2/gcTE/EB2OBK8GaagG3eQ0IxTXyPS79MyW2vSqYiyEyAS6/By66s2ptBRHxZxGqB7PbKFVhFiS1DF5fBEGoV5gsNp+EbRqNpwunO7nFbu54f62HzN3w/Yvwzzdrsps+tGrVildffZV3332X+Ph4nn32WbKyspgxYwZ6vZ6UlBRmzJhRq30SBCG8sdjsHoneisRSLvjD5MiIfk5HRYAXn4WoJJcoV63PeSdg5wrYsRAGvgffzXIcXwQGNzdxUz4YYpV5VZSrseSgtOsvK/ryodCoE4zZUvlzsZRAg9Zw26uVbyMEqLei/K677uKhhx7i6quvdq575pln6NChAwMHDmTatGns3LmTTz75xLl9+PDhdOrUiYkTJwJgNBrp06cP33zzDQCbN2/mrbfewmQyERERQbNmzXjyySeJj49n+PDhTJ8+nXbt2vk9FuCOO+7gsssuY9q0ac51F154IZdeeikAZrMZm83GSy+9RIsWLejRowdNmjRBq9ViNBrp3LkzEyZMIDIy0uNcc3NzmTVrFkeOHMFqtdKkSROefvpp4uPjMZvNvPXWW2zevBmdTkdERARjx47l4osvJiMjg549e/LYY49x3333Odt74IEHKCwsZPHixQwfPpysrCw+v6MYYlKgKItffviKoVOHkpaWxrZt2zh48CCPP/648/hHHnmEIUOGAPDggw+ybt06mjRpAsCLL75I27ZtSU1NpUePHnz++edERkayfft23njjDSwWC0VFRaSmpnLXXXc523z77bdZtGgRaWlpREZG8thjj5GZmcmxY8fQ6/U0atSI9u3bM3LkSB599FFnLfrPP/+cJUuWoNVqsVgsDB48mP79+wPQo0cP7rnnHkaMGAHAgQMHmD59uk/pu127dvHKK69gt9ux2Wx0796dUaNGsXXrVsaOHct5553n3LdBgwa89tprTJgwgd27d5OUlITdbicnJ4eRI0dy5ZVXcs8995CWlobG4X5jNpvp3bs3a9as4Y477ij3Oynrc7Ozs5k2bRpFRUXY7XaaNm3K5MmTiYpyJeYr7fjp06fz3//+F1DitFu3bk10dDS33347Op2O1157jRYtWjiPueeee+jZs6fHd7VmzRpiYmJ8ygk+9NBDvP766/gjIyPD43+mcvz4cdLT0+nRowfLli2jdevWHr9noe5isdo4W2TmnPhIth3K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9mv9G24Bo1zQEkJ4FOvxJ0T1XPkx3ZslMbWlb79f+s8u/jyXxf/+1jxILSu9GjZsmCsI9zd79mzGjBlDz549WbFiBRUreqZbtW/fnunTpxf6GgV+M5w/fz6pqam8/vrrpKSkkJKSwrhx41i/fj29e/fmyy+/ZMiQIZfRpWJmiSr8PkIIUcIsuqDcYrFIJWEhAhUZ76287iUBuRDiGmczm/Ksvp7pcBFplWNkSXv//fd54403AIiMjMRgMDBs2DB++OEHAL766isaNWpU6PMUOFI+efJkJk+enGv7O++8cyVtLn5mW7BbIIQQuVjNOdVPzWaphCpEwKISQMn95VMIIa5VNrMxzznlmXYXkTI1rsTdfffdTJgwgQcffBCn08nEiROpXLky06dPx2KxkJiYGNBIeQkvOFpMOsyE/3sJZPRJCBGCzJacQ63VIkG5EAGLzHvtdCGEuFbZzMY8q69nOlzERcl3jJIWFRXFK6+8kmv7ihUrLut5SkdQ3mqo558QQoQgfSBus8nyJMJj7dq1rFu3DoDs7Gz27dvHsmXLmDlzJgaDgeuuu46pU6diNF7DNQgidEXdEuvleZejR48yevRoVq1axfjx40lLS+PVV1/Vbm/Tpg1ffvkl7du355133qF69erabY899hgpKSnMmzePzMxMIiNzVnEZMGAA7dq1Y926daxbtw6TyYSiKAwcOJDbbrsNgM8++4zFixcDnoJTAwYM4J577gFg//79PP/882RnZ+NwOGjRogVDhw7FavU9BmRnZ/Pyyy/z/fffYzAYiIqK4l//+heVK1cmJSWFadOmUadOHe2+HTt2ZPPmzYwfP569e/cSFxeHoihcuHCBRx55hG7dujF37lw2btxIhQqedd0vXLhAp06deOyxx1i7di1z5syhWrVqWhvq1avHU089RUpKCtdff722ao7+9fLrb/v27enTpw/9+vXj73//OwAnTpzgwQcfZNmyZWRlZfHMM8/gcrlwOp00btyYJ554gr/++kvbb6rly5dz5swZbZm+77//XnueG2+8ESBX+1NTU2natClTp05l586djBw50qfeUXx8PHPmzOHcuXNMnTqVjIwMFEWhSpUqTJ48OVeRsDfffJPt27djNBoxGAyMGjWKhIQEBg0axIcffgjAxo0befLJJ/nyyy8pV64cR48eZdiwYbz//vu0adOGbdu2kZWVxbRp0zh16hQGg4GYmBimTZtGfHw8P/zwAy+//LKnGJfbTXJycq6lk/LaT/379+fixYv59l/fh//85z9s2rQJm82TRZrfZ2Pbtm0A7Nq1i9deew2n00lGRgZdu3blwQcf1O577tw5bbWlffv2UbNmTSIjI7nvvvs4ceJEgX9vBw8eZMyYMdpzjRo1it69e9OiRYs83+8qVark+1o9evTgWmc1G/NcpzzT7pIismGsdATlQggRwiy6oDypnFSOFh5du3ala9euADz99NN069aN1157jZEjR9KiRQumTJnCpk2baN++fZBbGrj3dh9l1a4jRfZ8N2YfYZL6S+vA1lDfvXs377//Pg888IC2zWg00q1bN9avX68FfGfOnOHQoUO0atWKefPmMXv2bC34VV26dInXX3+dDz/8EKvVysmTJ+nRowdffPEF3333HYsWLeKNN94gOjqa8+fP06tXL+rWrUtcXByjR4/mtddeo1atWiiKwmuvvcasWbN8gieAZ555htq1a7Ns2TIAPv30U0aOHOlT6Tc/Y8eOpW3btoAnELr33nu1v6n+/fvTp08fAOx2O506daJnz56AZ21wfZCkt3HjRu68806aN/ctFvXtt9/m29/Zs2fzyCOP0KJFCxITE5k8eTJPPvkkFStWZMSIETz00EO0bdsWRVEYNmwYmzZtCqg41+rVq3nkkUd8gnL/9rvdbvr27cuPP/4IQMuWLXnppZdyPddbb71F69attffkmWeeYcWKFfTv31+7z2+//cbmzZtZvnw5BoOBffv2MW7cODZs2IDb7ebcuXMkJCSwZcsW7r77brZu3UqXLl3YuXMnt99+u8/rvffeeyQmJvLss88CsGjRIl577TUmT57Mv/71L+3vzeFw0Lt3b1q2bMn111/v8xx57ae1a9fm2/8bbrgBgA8++IBOnTrx4Ycfan8PkPdnA+DIkSPMmDGDt956i8TERLKysnj44YepVq2a9veVkJCgrRnvf7Fo7ty5Bf695aeg9zu/1xJgsxQwp1yC8rB1DV9+F0KIkmGJjNV+Lh8bWcA9xbXoxx9/5LfffqNXr17s3btXC4batm3L9u3bg9y64Mo06D4vAa6w8sQTTzB37lxOnDjhs71bt25s3LhR+/3999+na9euBRZejIqKwuVysXz5cv78808qVqzIZ599htFoZPXq1fTr14/o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z3azUQq9hSsJyoUQogTJSLkQV0hGyoUQAsgJys+lZftst8pIediSPSeEECXIJkG5EFdGRsqFEALICb6nffCzz/birxQmiosE5UIIUYIiJH1diCtzmdXXhRCitLLlMyKemuko4ZaIoiJBuRBClKBImwQWQlyRy1ynXAghSqu4KN/joTpynpolQXm4knXKhRCiBEVaLcFughDhKZ+R8p07d/Lwww/z0ksv0alTJ217586dadSoEc8++ywOh4M33niD7du3YzKZMJvNjBw5kptuuomjR4/SoUMHVq5cSePGjQFYvnw5Z86cYfjw4dxxxx1UrlwZo9FIdnY2jRo1Yvz48dhsNlJSUsjMzPRZ33zAgAHUrVuX0aNH51ofevz48ezdu5e4uDht23333cc999zDP//5T21beno6+/fv55tvviE6Olrb3qZNG7Zt28bcuXPZsmULK1aswGz2fJXr2bMnL774IkuXLmXv3r2cPn2arKwsqlWrRnx8PHPmzPFpy65du9i7dy/9+vXz2T5q1Chmz56NNZ+pNmob9C5cuMCXX35J586d2bJlC6dPn6Z79+55Pl4IcfVuvy5R+3nnxDvZtO8UE9f9yEUZKQ9bEpQLIUQJsllMwW6CEMXnu+WwZ2nxPLcp/wtatWvXZuPGjVpQ/ssvv5CZmbNM0Jw5c3C5XCxduhSj0cixY8f4xz/+wbx58zAYDMTExDBhwgTee++9PIPRt99+G5s3y2XevHm89NJLjB8/HoDZs2dTp04dn/sfPXo037aOHTuWtm3b5tq+ZMkSANxuN//4xz944oknfAJyf8eOHeONN95g6NChPtvVdq1du5aDBw8yZsyYXI9VFIW5c+eyYMGCXLe99NJL+b5mfn755Rc2b95M586dSU5OZuDAgXTo0IHY2NjLfi4hROGirDkhXMUyEXS+qTKb9p1kxF31gtgqcTUkfV0IIUrAriYz2W9piFGWKxHi8jTtD0nNwZD/Z6dBgwYcP36c1NRUADZs2EDnzp212zds2MDo0aMxGj1fe6pWrUrfvn1Zt24dADVq1OD2228PKCB95JFH+OSTT66iQwV74YUXKFOmDAMGDCjwfgMHDuSDDz7g559/LvB+edm2bRt169bFarWyc+dOevToQd++fXn//fe54447yM7O5vDhw/Tp04eUlBTGjx9PSkoKAHa7nSeeeII+ffrw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\n",
      "text/plain": [
       "<Figure size 1008x360 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(ncols=2, figsize=(14, 5))\n",
    "for i in [0, 1]:\n",
    "    s1, s2 = most_common_pairs.at[i, 's1'], most_common_pairs.at[i, 's2']\n",
    "    prices.loc[:, [s1, s2]].rename(columns=tickers).plot(secondary_y=tickers[s2],\n",
    "                                                         ax=axes[i],\n",
    "                                                         rot=0)\n",
    "    axes[i].grid(False)\n",
    "    axes[i].set_xlabel('')\n",
    "\n",
    "sns.despine()\n",
    "fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get Entry and Exit Dates "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Smooth prices using Kalman filter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:11:14.858886Z",
     "start_time": "2020-06-19T13:11:14.854069Z"
    }
   },
   "outputs": [],
   "source": [
    "def KFSmoother(prices):\n",
    "    \"\"\"Estimate rolling mean\"\"\"\n",
    "    \n",
    "    kf = KalmanFilter(transition_matrices=np.eye(1),\n",
    "                      observation_matrices=np.eye(1),\n",
    "                      initial_state_mean=0,\n",
    "                      initial_state_covariance=1,\n",
    "                      observation_covariance=1,\n",
    "                      transition_covariance=.05)\n",
    "\n",
    "    state_means, _ = kf.filter(prices.values)\n",
    "    return pd.Series(state_means.flatten(),\n",
    "                     index=prices.index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.810776Z",
     "start_time": "2020-06-19T13:11:14.860508Z"
    }
   },
   "outputs": [],
   "source": [
    "smoothed_prices = prices.apply(KFSmoother)\n",
    "smoothed_prices.to_hdf('tmp.h5', 'smoothed')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.820497Z",
     "start_time": "2020-06-19T13:12:00.812004Z"
    }
   },
   "outputs": [],
   "source": [
    "smoothed_prices = pd.read_hdf('tmp.h5', 'smoothed')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compute rolling hedge ratio using Kalman Filter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.829378Z",
     "start_time": "2020-06-19T13:12:00.821806Z"
    }
   },
   "outputs": [],
   "source": [
    "def KFHedgeRatio(x, y):\n",
    "    \"\"\"Estimate Hedge Ratio\"\"\"\n",
    "    delta = 1e-3\n",
    "    trans_cov = delta / (1 - delta) * np.eye(2)\n",
    "    obs_mat = np.expand_dims(np.vstack([[x], [np.ones(len(x))]]).T, axis=1)\n",
    "\n",
    "    kf = KalmanFilter(n_dim_obs=1, n_dim_state=2,\n",
    "                      initial_state_mean=[0, 0],\n",
    "                      initial_state_covariance=np.ones((2, 2)),\n",
    "                      transition_matrices=np.eye(2),\n",
    "                      observation_matrices=obs_mat,\n",
    "                      observation_covariance=2,\n",
    "                      transition_covariance=trans_cov)\n",
    "\n",
    "    state_means, _ = kf.filter(y.values)\n",
    "    return -state_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate mean reversion half life"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.840770Z",
     "start_time": "2020-06-19T13:12:00.830166Z"
    }
   },
   "outputs": [],
   "source": [
    "def estimate_half_life(spread):\n",
    "    X = spread.shift().iloc[1:].to_frame().assign(const=1)\n",
    "    y = spread.diff().iloc[1:]\n",
    "    beta = (np.linalg.inv(X.T @ X) @ X.T @ y).iloc[0]\n",
    "    halflife = int(round(-np.log(2) / beta, 0))\n",
    "    return max(halflife, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compute Spread & Bollinger Bands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.854200Z",
     "start_time": "2020-06-19T13:12:00.841765Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_spread(candidates, prices):\n",
    "    pairs = []\n",
    "    half_lives = []\n",
    "\n",
    "    periods = pd.DatetimeIndex(sorted(candidates.test_end.unique()))\n",
    "    start = time()\n",
    "    for p, test_end in enumerate(periods, 1):\n",
    "        start_iteration = time()\n",
    "\n",
    "        period_candidates = candidates.loc[candidates.test_end == test_end, ['y', 'x']]\n",
    "        trading_start = test_end + pd.DateOffset(days=1)\n",
    "        t = trading_start - pd.DateOffset(years=2)\n",
    "        T = trading_start + pd.DateOffset(months=6) - pd.DateOffset(days=1)\n",
    "        max_window = len(prices.loc[t: test_end].index)\n",
    "        print(test_end.date(), len(period_candidates))\n",
    "        for i, (y, x) in enumerate(zip(period_candidates.y, period_candidates.x), 1):\n",
    "            if i % 1000 == 0:\n",
    "                msg = f'{i:5.0f} | {time() - start_iteration:7.1f} | {time() - start:10.1f}'\n",
    "                print(msg)\n",
    "            pair = prices.loc[t: T, [y, x]]\n",
    "            pair['hedge_ratio'] = KFHedgeRatio(y=KFSmoother(prices.loc[t: T, y]),\n",
    "                                               x=KFSmoother(prices.loc[t: T, x]))[:, 0]\n",
    "            pair['spread'] = pair[y].add(pair[x].mul(pair.hedge_ratio))\n",
    "            half_life = estimate_half_life(pair.spread.loc[t: test_end])                \n",
    "\n",
    "            spread = pair.spread.rolling(window=min(2 * half_life, max_window))\n",
    "            pair['z_score'] = pair.spread.sub(spread.mean()).div(spread.std())\n",
    "            pairs.append(pair.loc[trading_start: T].assign(s1=y, s2=x, period=p, pair=i).drop([x, y], axis=1))\n",
    "\n",
    "            half_lives.append([test_end, y, x, half_life])\n",
    "    return pairs, half_lives"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:12:00.897593Z",
     "start_time": "2020-06-19T13:12:00.856141Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 33661 entries, 7 to 23906\n",
      "Data columns (total 9 columns):\n",
      " #   Column    Non-Null Count  Dtype         \n",
      "---  ------    --------------  -----         \n",
      " 0   test_end  33661 non-null  datetime64[ns]\n",
      " 1   w1        33661 non-null  float64       \n",
      " 2   w2        33661 non-null  float64       \n",
      " 3   joh_sig   33661 non-null  bool          \n",
      " 4   eg        33661 non-null  float64       \n",
      " 5   eg_sig    33661 non-null  bool          \n",
      " 6   coint     33661 non-null  bool          \n",
      " 7   y         33661 non-null  object        \n",
      " 8   x         33661 non-null  object        \n",
      "dtypes: bool(3), datetime64[ns](1), float64(3), object(2)\n",
      "memory usage: 1.9+ MB\n"
     ]
    }
   ],
   "source": [
    "candidates = pd.read_hdf('backtest.h5', 'candidates')\n",
    "candidates.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:38.419560Z",
     "start_time": "2020-06-19T13:12:00.898765Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2016-12-31 3793\n",
      " 1000 |   180.5 |      180.5\n",
      " 2000 |   360.7 |      360.7\n",
      " 3000 |   536.6 |      536.6\n",
      "2017-03-31 2118\n",
      " 1000 |   206.2 |      883.1\n",
      " 2000 |   415.7 |     1092.6\n",
      "2017-06-30 4311\n",
      " 1000 |   244.6 |     1363.1\n",
      " 2000 |   486.8 |     1605.3\n",
      " 3000 |   750.6 |     1869.1\n",
      " 4000 |   989.5 |     2108.0\n",
      "2017-09-30 2379\n",
      " 1000 |   271.5 |     2481.2\n",
      " 2000 |   538.0 |     2747.7\n",
      "2017-12-31 3260\n",
      " 1000 |   706.0 |     3554.9\n",
      " 2000 |  2552.6 |     5401.5\n",
      " 3000 |  2927.6 |     5776.4\n",
      "2018-03-31 3819\n",
      " 1000 |   354.2 |     6228.5\n",
      " 2000 |   652.1 |     6526.5\n",
      " 3000 |   954.5 |     6828.9\n",
      "2018-06-30 2742\n",
      " 1000 |   299.7 |     7372.7\n",
      " 2000 |   595.4 |     7668.4\n",
      "2018-09-30 3010\n",
      " 1000 |   292.7 |     8182.6\n",
      " 2000 |   588.5 |     8478.3\n",
      " 3000 |   883.9 |     8773.7\n",
      "2018-12-31 2903\n",
      " 1000 |   292.5 |     9069.4\n",
      " 2000 |   582.5 |     9359.4\n",
      "2019-03-31 2647\n",
      " 1000 |   295.1 |     9920.7\n",
      " 2000 |   588.3 |    10213.9\n",
      "2019-06-30 2679\n",
      " 1000 |   290.2 |    10693.5\n",
      " 2000 |   585.2 |    10988.6\n"
     ]
    }
   ],
   "source": [
    "pairs, half_lives = get_spread(candidates, smoothed_prices)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Collect Results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Half Lives"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:38.449198Z",
     "start_time": "2020-06-19T16:18:38.420580Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 33661 entries, 0 to 33660\n",
      "Data columns (total 4 columns):\n",
      " #   Column     Non-Null Count  Dtype         \n",
      "---  ------     --------------  -----         \n",
      " 0   test_end   33661 non-null  datetime64[ns]\n",
      " 1   s1         33661 non-null  object        \n",
      " 2   s2         33661 non-null  object        \n",
      " 3   half_life  33661 non-null  int64         \n",
      "dtypes: datetime64[ns](1), int64(1), object(2)\n",
      "memory usage: 1.0+ MB\n"
     ]
    }
   ],
   "source": [
    "hl = pd.DataFrame(half_lives, columns=['test_end', 's1', 's2', 'half_life'])\n",
    "hl.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:38.460654Z",
     "start_time": "2020-06-19T16:18:38.450071Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    33661.000000\n",
       "mean        25.199519\n",
       "std         10.223437\n",
       "min          1.000000\n",
       "25%         20.000000\n",
       "50%         24.000000\n",
       "75%         28.000000\n",
       "max       1057.000000\n",
       "Name: half_life, dtype: float64"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hl.half_life.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:38.488001Z",
     "start_time": "2020-06-19T16:18:38.461724Z"
    }
   },
   "outputs": [],
   "source": [
    "hl.to_hdf('backtest.h5', 'half_lives')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Pair Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:42.640734Z",
     "start_time": "2020-06-19T16:18:38.489283Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 4229473 entries, 2017-01-03 to 2019-12-31\n",
      "Data columns (total 7 columns):\n",
      " #   Column       Non-Null Count    Dtype  \n",
      "---  ------       --------------    -----  \n",
      " 0   hedge_ratio  4229473 non-null  float64\n",
      " 1   spread       4229473 non-null  float64\n",
      " 2   z_score      4229473 non-null  float64\n",
      " 3   s1           4229473 non-null  object \n",
      " 4   s2           4229473 non-null  object \n",
      " 5   period       4229473 non-null  int64  \n",
      " 6   pair         4229473 non-null  int64  \n",
      "dtypes: float64(3), int64(2), object(2)\n",
      "memory usage: 258.1+ MB\n"
     ]
    }
   ],
   "source": [
    "pair_data = pd.concat(pairs)\n",
    "pair_data.info(null_counts=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:43.195991Z",
     "start_time": "2020-06-19T16:18:42.641767Z"
    }
   },
   "outputs": [],
   "source": [
    "pair_data.to_hdf('backtest.h5', 'pair_data')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:43.656592Z",
     "start_time": "2020-06-19T16:18:43.196963Z"
    }
   },
   "outputs": [],
   "source": [
    "pair_data = pd.read_hdf('backtest.h5', 'pair_data')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Identify Long & Short Entry and Exit Dates"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:18:43.665632Z",
     "start_time": "2020-06-19T16:18:43.657454Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_trades(data):\n",
    "    pair_trades = []\n",
    "    for i, ((period, s1, s2), pair) in enumerate(data.groupby(['period', 's1', 's2']), 1):\n",
    "        if i % 100 == 0:\n",
    "            print(i)\n",
    "\n",
    "        first3m = pair.first('3M').index\n",
    "        last3m = pair.last('3M').index\n",
    "\n",
    "        entry = pair.z_score.abs() > 2\n",
    "        entry = ((entry.shift() != entry)\n",
    "                 .mul(np.sign(pair.z_score))\n",
    "                 .fillna(0)\n",
    "                 .astype(int)\n",
    "                 .sub(2))\n",
    "\n",
    "        exit = (np.sign(pair.z_score.shift().fillna(method='bfill'))\n",
    "                != np.sign(pair.z_score)).astype(int) - 1\n",
    "\n",
    "        trades = (entry[entry != -2].append(exit[exit == 0])\n",
    "                  .to_frame('side')\n",
    "                  .sort_values(['date', 'side'])\n",
    "                  .squeeze())\n",
    "        if not isinstance(trades, pd.Series):\n",
    "            continue\n",
    "        try:\n",
    "            trades.loc[trades < 0] += 2\n",
    "        except:\n",
    "            print(type(trades))\n",
    "            print(trades)\n",
    "            print(pair.z_score.describe())\n",
    "            break\n",
    "\n",
    "        trades = trades[trades.abs().shift() != trades.abs()]\n",
    "        window = trades.loc[first3m.min():first3m.max()]\n",
    "        extra = trades.loc[last3m.min():last3m.max()]\n",
    "        n = len(trades)\n",
    "\n",
    "        if window.iloc[0] == 0:\n",
    "            if n > 1:\n",
    "                print('shift')\n",
    "                window = window.iloc[1:]\n",
    "        if window.iloc[-1] != 0:\n",
    "            extra_exits = extra[extra == 0].head(1)\n",
    "            if extra_exits.empty:\n",
    "                continue\n",
    "            else:\n",
    "                window = window.append(extra_exits)\n",
    "\n",
    "        trades = pair[['s1', 's2', 'hedge_ratio', 'period', 'pair']].join(window.to_frame('side'), how='right')\n",
    "        trades.loc[trades.side == 0, 'hedge_ratio'] = np.nan\n",
    "        trades.hedge_ratio = trades.hedge_ratio.ffill()\n",
    "        pair_trades.append(trades)\n",
    "    return pair_trades"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:23:57.066089Z",
     "start_time": "2020-06-19T16:18:43.666577Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100\n",
      "200\n",
      "300\n",
      "400\n",
      "500\n",
      "600\n",
      "700\n",
      "800\n",
      "900\n",
      "1000\n",
      "1100\n",
      "1200\n",
      "1300\n",
      "1400\n",
      "1500\n",
      "1600\n",
      "1700\n",
      "1800\n",
      "1900\n",
      "2000\n",
      "2100\n",
      "2200\n",
      "2300\n",
      "2400\n",
      "2500\n",
      "2600\n",
      "2700\n",
      "2800\n",
      "2900\n",
      "3000\n",
      "3100\n",
      "3200\n",
      "3300\n",
      "3400\n",
      "3500\n",
      "3600\n",
      "3700\n",
      "3800\n",
      "3900\n",
      "4000\n",
      "4100\n",
      "4200\n",
      "4300\n",
      "4400\n",
      "4500\n",
      "4600\n",
      "4700\n",
      "4800\n",
      "4900\n",
      "5000\n",
      "5100\n",
      "5200\n",
      "5300\n",
      "5400\n",
      "5500\n",
      "5600\n",
      "5700\n",
      "5800\n",
      "5900\n",
      "6000\n",
      "6100\n",
      "6200\n",
      "6300\n",
      "6400\n",
      "6500\n",
      "6600\n",
      "6700\n",
      "6800\n",
      "6900\n",
      "7000\n",
      "7100\n",
      "7200\n",
      "7300\n",
      "7400\n",
      "7500\n",
      "7600\n",
      "7700\n",
      "7800\n",
      "7900\n",
      "8000\n",
      "8100\n",
      "8200\n",
      "8300\n",
      "8400\n",
      "8500\n",
      "8600\n",
      "8700\n",
      "8800\n",
      "8900\n",
      "9000\n",
      "9100\n",
      "9200\n",
      "9300\n",
      "9400\n",
      "9500\n",
      "9600\n",
      "9700\n",
      "9800\n",
      "9900\n",
      "10000\n",
      "10100\n",
      "10200\n",
      "10300\n",
      "10400\n",
      "10500\n",
      "10600\n",
      "10700\n",
      "10800\n",
      "10900\n",
      "11000\n",
      "11100\n",
      "11200\n",
      "11300\n",
      "11400\n",
      "11500\n",
      "11600\n",
      "11700\n",
      "11800\n",
      "11900\n",
      "12000\n",
      "12100\n",
      "12200\n",
      "12300\n",
      "12400\n",
      "12500\n",
      "12600\n",
      "12700\n",
      "12800\n",
      "12900\n",
      "13000\n",
      "13100\n",
      "13200\n",
      "13300\n",
      "13400\n",
      "13500\n",
      "13600\n",
      "13700\n",
      "13800\n",
      "13900\n",
      "14000\n",
      "14100\n",
      "14200\n",
      "14300\n",
      "14400\n",
      "14500\n",
      "14600\n",
      "14700\n",
      "14800\n",
      "14900\n",
      "15000\n",
      "15100\n",
      "15200\n",
      "15300\n",
      "15400\n",
      "15500\n",
      "15600\n",
      "15700\n",
      "15800\n",
      "15900\n",
      "16000\n",
      "16100\n",
      "16200\n",
      "16300\n",
      "16400\n",
      "16500\n",
      "16600\n",
      "16700\n",
      "16800\n",
      "16900\n",
      "17000\n",
      "17100\n",
      "17200\n",
      "17300\n",
      "17400\n",
      "17500\n",
      "17600\n",
      "17700\n",
      "17800\n",
      "17900\n",
      "18000\n",
      "18100\n",
      "18200\n",
      "18300\n",
      "18400\n",
      "18500\n",
      "18600\n",
      "18700\n",
      "18800\n",
      "18900\n",
      "19000\n",
      "19100\n",
      "19200\n",
      "19300\n",
      "19400\n",
      "19500\n",
      "19600\n",
      "19700\n",
      "19800\n",
      "19900\n",
      "20000\n",
      "20100\n",
      "20200\n",
      "20300\n",
      "20400\n",
      "20500\n",
      "20600\n",
      "20700\n",
      "20800\n",
      "20900\n",
      "21000\n",
      "21100\n",
      "21200\n",
      "21300\n",
      "21400\n",
      "21500\n",
      "21600\n",
      "21700\n",
      "21800\n",
      "21900\n",
      "22000\n",
      "22100\n",
      "22200\n",
      "22300\n",
      "22400\n",
      "22500\n",
      "22600\n",
      "22700\n",
      "22800\n",
      "22900\n",
      "23000\n",
      "23100\n",
      "23200\n",
      "23300\n",
      "23400\n",
      "23500\n",
      "23600\n",
      "23700\n",
      "23800\n",
      "23900\n",
      "24000\n",
      "24100\n",
      "24200\n",
      "24300\n",
      "24400\n",
      "24500\n",
      "24600\n",
      "24700\n",
      "24800\n",
      "24900\n",
      "25000\n",
      "25100\n",
      "25200\n",
      "25300\n",
      "25400\n",
      "25500\n",
      "25600\n",
      "25700\n",
      "25800\n",
      "25900\n",
      "26000\n",
      "26100\n",
      "26200\n",
      "26300\n",
      "26400\n",
      "26500\n",
      "26600\n",
      "26700\n",
      "26800\n",
      "26900\n",
      "27000\n",
      "27100\n",
      "27200\n",
      "27300\n",
      "27400\n",
      "27500\n",
      "27600\n",
      "27700\n",
      "27800\n",
      "27900\n",
      "28000\n",
      "28100\n",
      "28200\n",
      "28300\n",
      "28400\n",
      "28500\n",
      "28600\n",
      "28700\n",
      "28800\n",
      "28900\n",
      "29000\n",
      "29100\n",
      "29200\n",
      "29300\n",
      "29400\n",
      "29500\n",
      "29600\n",
      "29700\n",
      "29800\n",
      "29900\n",
      "30000\n",
      "30100\n",
      "30200\n",
      "30300\n",
      "30400\n",
      "30500\n",
      "30600\n",
      "30700\n",
      "30800\n",
      "30900\n",
      "31000\n",
      "31100\n",
      "31200\n",
      "31300\n",
      "31400\n",
      "31500\n",
      "31600\n",
      "31700\n",
      "31800\n",
      "31900\n",
      "32000\n",
      "32100\n",
      "32200\n",
      "32300\n",
      "32400\n",
      "32500\n",
      "32600\n",
      "32700\n",
      "32800\n",
      "32900\n",
      "33000\n",
      "33100\n",
      "33200\n",
      "33300\n",
      "33400\n",
      "33500\n",
      "33600\n"
     ]
    }
   ],
   "source": [
    "pair_trades = get_trades(pair_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:24:00.948377Z",
     "start_time": "2020-06-19T16:23:57.066963Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 134450 entries, 2017-01-03 to 2019-10-04\n",
      "Data columns (total 6 columns):\n",
      " #   Column       Non-Null Count   Dtype  \n",
      "---  ------       --------------   -----  \n",
      " 0   s1           134450 non-null  object \n",
      " 1   s2           134450 non-null  object \n",
      " 2   hedge_ratio  134450 non-null  float64\n",
      " 3   period       134450 non-null  int64  \n",
      " 4   pair         134450 non-null  int64  \n",
      " 5   side         134450 non-null  int64  \n",
      "dtypes: float64(1), int64(3), object(2)\n",
      "memory usage: 7.2+ MB\n"
     ]
    }
   ],
   "source": [
    "pair_trade_data = pd.concat(pair_trades)\n",
    "pair_trade_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:24:00.959508Z",
     "start_time": "2020-06-19T16:24:00.949698Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>s1</th>\n",
       "      <th>s2</th>\n",
       "      <th>hedge_ratio</th>\n",
       "      <th>period</th>\n",
       "      <th>pair</th>\n",
       "      <th>side</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>AA.US</td>\n",
       "      <td>ACWI.US</td>\n",
       "      <td>-0.533861</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-12</th>\n",
       "      <td>AA.US</td>\n",
       "      <td>ACWI.US</td>\n",
       "      <td>-0.533861</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>AA.US</td>\n",
       "      <td>ACWX.US</td>\n",
       "      <td>-0.799916</td>\n",
       "      <td>1</td>\n",
       "      <td>54</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-12</th>\n",
       "      <td>AA.US</td>\n",
       "      <td>ACWX.US</td>\n",
       "      <td>-0.799916</td>\n",
       "      <td>1</td>\n",
       "      <td>54</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>AA.US</td>\n",
       "      <td>DEM.US</td>\n",
       "      <td>-0.896395</td>\n",
       "      <td>1</td>\n",
       "      <td>376</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               s1       s2  hedge_ratio  period  pair  side\n",
       "date                                                       \n",
       "2017-01-03  AA.US  ACWI.US    -0.533861       1    16    -1\n",
       "2017-01-12  AA.US  ACWI.US    -0.533861       1    16     0\n",
       "2017-01-03  AA.US  ACWX.US    -0.799916       1    54    -1\n",
       "2017-01-12  AA.US  ACWX.US    -0.799916       1    54     0\n",
       "2017-01-03  AA.US   DEM.US    -0.896395       1   376    -1"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pair_trade_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:34:09.171268Z",
     "start_time": "2020-06-19T16:34:08.884111Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1008x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "trades = pair_trade_data['side'].copy()\n",
    "trades.loc[trades != 0] = 1\n",
    "trades.loc[trades == 0] = -1\n",
    "trades.sort_index().cumsum().plot(figsize=(14, 4))\n",
    "sns.despine()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T16:24:01.303828Z",
     "start_time": "2020-06-19T16:24:01.269001Z"
    }
   },
   "outputs": [],
   "source": [
    "pair_trade_data.to_hdf('backtest.h5', 'pair_trades')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "341px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
